library(tidyverse)
library (geobr)
library(elevatr)
library(raster)
library(rayshader)
<- read_state (code_state = 25)
pb <- get_elev_raster (pb, z=8, clip='location')
topo plot (topo)
9 Exemplo 1:
Vamos utilizar a geometria do Estado da Paraíba e da Bahia do pacote geobr e plotar seus dados de elevação a partir das informações do pacote elevatr.
Vamos carregar os pacotes necessários:
Vamos converter o objeto raster para uma matriz e posteriormente plotar o mapa 3D com o rayshader.
<- raster_to_matrix(topo)
topo_matrix %>%
topo_matrix sphere_shade(texture = "imhof1") %>%
plot_3d(topo_matrix, zscale = 10, fov = 0, theta = 135,
zoom = 0.75, phi = 45, windowsize = c(1000, 800))
= read_state (code_state = 29)
ba <- get_elev_raster(ba, z=8, clip='location')
topo plot(topo)
Vamos converter o objeto raster para uma matriz e posteriormente plotar o mapa 3D com o rayshader.
<- raster_to_matrix(topo)
topo_matrix %>%
topo_matrix sphere_shade(texture = "imhof3") %>%
plot_3d(topo_matrix, zscale = 10, fov = 0, theta = 135,
zoom = 0.75, phi = 45, windowsize = c(1000, 800))
10 Exemplo 2:
Vamos fazer o download de dados de elevação no formato raster e posteriormente convertê-lo para uma matriz.
= tempfile()
loadzip download.file('https://tylermw.com/data/dem_01.tif.zip', loadzip)
= unzip(loadzip, 'dem_01.tif') %>% raster()
localtif plot(localtif)
Com o rayshader vamos adicionar a textura e plotar o mapa:
= raster_to_matrix(localtif)
rast.mat
%>%
rast.mat sphere_shade(texture = 'desert') %>% plot_map()
Vamos adicionar corpos d’água, sombras projetadas e sombras ambientes à visualização e por fim, plota-la em 3D.
%>%
rast.mat sphere_shade(texture = "desert") %>%
add_water (detect_water (rast.mat), color = "desert") %>%
add_shadow(ray_shade (rast.mat, zscale = 3), 0.5) %>%
add_shadow(ambient_shade(rast.mat), 0) %>%
plot_3d(rast.mat, zscale = 10, fov = 0, theta = 135,
zoom = 0.75, phi = 45, windowsize = c(1000, 800))
#Salvar a imagem 3D
save_3dprint("3d_elevation.stl")